/*
 * @Author:  梁卓
 * @Date: 2022-01-28 21:56:51
 * @LastEditTime: 2022-03-05 11:26:18
 * @LastEditors: Please set LastEditors
 * @Description: axis
 * @FilePath: \dreamUi\src\utils\ajax.js
 */
import Vue from 'vue'
import axios from 'axios'
import { Message } from 'element-ui';

/**
 * 创建axios
 * 并设置超时时间
 */
// axios.defaults.baseURL = "http://124.221.126.175:9001";
const ajax = axios.create({
  // 一定注意，因为代理原因，此处应使用的端口和前端一致 或者不写
  // baseURL: 'http://124.221.126.175:9000',
  timeout: 100000
});

/** 
 * 请求拦截器
*/
ajax.interceptors.request.use((config) =>{
  const token = sessionStorage.getItem('token');
  if (token) {
    // 在每次请求时携带请求头携带token
    config.headers['Authorization'] = token;
  }
  return config;
}, (err) => {
  Message.error('请求异常');
})

/**
 * 响应拦截器 
 * 及后端响应的信息 
*/
ajax.interceptors.response.use((res) => {
  if(res.data.code != 200) {
    Message.error(res.data.message);
  }
  return res;
}, (err) => {
  if (err.response.status === 400) {
    Message.error(err.response.data.message);
  } else if (err.response.status === 401) {
    Message.error('您未登录，请进行登录操作');
  } else if (err.response.status === 403) {
    Message.error(res.response.data.message);
  } else if (err.response.status === 404) {
    Message.error('后端接口没找到');
  } else if (err.response.status === 500) {
    Message.error('后端异常--->' + res.response.data.message);
  } else {
    Message.error('未知错误');
  }
});

Vue.prototype.$ajax = ajax;

// 暴露ajax
export default ajax;